package com.kpmg.datalake.common.service;

import com.kpmg.datalake.common.vo.ServerResponse;
import com.kpmg.datalake.common.vo.UserLoginDTO;
import com.kpmg.datalake.common.vo.UserManagementDTO;

import java.util.List;

/**
 * @Auther: Richard.ji [richard.ji@kpmg.com]
 * @Date: 2018-07-06 10:05:21
 * @Description: 用户管理
 */
public interface UserManagementService {

  /*
   *  获取用户信息
   */
  ServerResponse getUserInfoList(UserManagementDTO userManagementDTO);

  /*
   *  保存用户信息
   */
  ServerResponse saveUser(UserManagementDTO userManagementDTO);

  /*
   *  修改用户信息
   */
  ServerResponse updateUser(UserManagementDTO userManagementDTO);


  /*
   *  删除用户信息
   */
  ServerResponse deleteUser(UserManagementDTO userManagementDTO);

  /**
   * 检查缓存中用户登录信息, 并做出对应的更新
   *
   * @param userName 登陆用户名
   * @param loginIp 登陆IP
   * @param loginSuccess 当前是否登陆成功
   * @return ServerResponse<String>
   */
  ServerResponse<String> updateUserLoginDetail(String userName, String loginIp,
      Boolean loginSuccess);

  /**
   * 检查当前用户在对应IP上的登陆状态是否被锁定
   *
   * @return ServerResponse<String>
   */
  ServerResponse<String> checkUserLoginStatus(String userName, String loginIp);
}
